Most controlled machines are programmed to operate in a specific way before they are put into use. This programming process requires a detailed set of instructions to produce some desired result. This can be accomplished readily for simple control tasks such as cutting parts with a numerically controlled milling machine according to the specific dimensions of the part drawing. However, it may be difficult to know beforehand what conditions will be encountered, and what actions will be required in an application like a surveillance robot. The problem can be overcome by putting the machine into operation, and then using the machine to discover and incorporate the desired control behavior.
In general practice, there are two ways to incorporate the desired control behavior after a machine is put into use. One is based upon absolute (all-or-nothing) associative memories, as shown in U.S. Pat. No. 4,538,243 to Bernd Zehner (1985), and the other is based upon neural networks, as shown in U.S. Pat. No. 5,161,203 to B. Shawn Buckley (1992).
An absolute associative memory writes the input word (sensed condition) into the address of the output word (desired action). In use, the associative memory system searches for the output word (address) that contains the exact match of the input word either through the Boolean "and" function, or a mismatch through the Boolean "or" function. Thus it is called an associative content addressable memory (ACAM), and is considered self-learning since it learns the output word that occurs with each input word.
A neural network operates in much the same way as an associative memory. However, a neural network operates by altering weights common to specific input words and desired output words. In use, a neural network finds the output word in which the sum of the weights belonging to the extant input word is a maximum. This output word is considered the best fit to the input word. Since the best fit is conditional, according to the fitness of the other possible output words, a neural network can be considered to have a conditional memory. Nevertheless, associative memories and neural networks suffer from several disadvantages:
(a) If an associative memory cannot find an output word that exactly matches the input word, additional less restrictive searches must be made by the associative memory system to find the output word that is associated with the input word. In most robot applications, some action state (output word) is required for every sensed state (input word). A robot machine controlled by an associative memory may not have enough time to make multiple searches to find an action state of each sensed state. Since the best fit output word is always found in every search in a conditional memory, a neural network is a more appropriate controller for a robot type machine. PA1 (b) Memory-controlled machines must also deal with the question: Do specific input and output variables belong together as a group, or do they belong in separate groups? An associative memory cannot inherently make these distinctions. However, neural networks have the capability of being inherently self-organizing. That is to say, they can identify input and output variables that operate best when grouped together, and can identify the input and output variables that operate best when they are separate from other input and output variables. PA1 (c) Associative memories and neural networks are designed around the binary (two-value) number system, which is less efficient than the trinary (three-value) number system. PA1 (d) When memory units can be arranged in interconnected networks, information can flow forward from input variables to output variables, and backward from output variables to input variables in many different pathways. However, absolute associative memories cannot be connected to one another directly in networks because their absolute memory cells leave no traces of previously erased pathways. However, neural network units can be connected directly into networks because output data can be associated with input data through conditional traces in one or more intermediate layers of neural network units. PA1 (e) However, the analog circuitry required to accurately sum currents in a neural network is difficult to implement in the large scale integration of printed circuits (LSI) in comparison to the discrete operations of an associative memory. Usually, digital computers are used to simulate the operation of neural networks. However, the serial process of the digital computer imposes speed limitations on the inherently parallel process of neural networks. PA1 (a) My self-learning machine learns the actions that are desired by its operators, or discovers and incorporates whatever actions are allowed by its environment, as each new condition is encountered. It uses discrete conditional memory cells that store a range of analog values rather than the single absolute (all-or-nothing) state of an associative memory. The analog value stored in each conditional memory cell is adjusted automatically in the manner of the lagged demand register in my own U.S. Pat. No. 3,325,732, according to the historical probability of each output word occurring with each input word, instead of being changed in the all-or-nothing manner of an associative memory. Thus, the relative fitness of each output word for a given input word can be found in a single search. PA1 (b) Since the analog value of each conditional memory cell in the self-learning memory matrices described herein can be adjusted automatically according to the concurrence of output states with input states, the state of all of the input variables can determine the state of all of the output variable in a unitary organization. Or, the state of individual input variables can determine the state of individual output variables despite the state of other input variables in a diverse organization. Thus, the simple self-learning memory matrices described herein are inherently self-organizing. PA1 (c) The input and output variables of a memory-controlled machine can be digitized by means of an input encoder, output decoder, and feedback encoder. This greatly reduces the number of memory cells required to produce machine behavior with a given input/output resolution. Moreover, these digitizing devices can be readily designed to operate in the trinary number system, which is significantly more efficient than the binary number system used in associative memories and neural networks. PA1 (d) My self-learning machines can use bidirectional memory cells and bidirectional memory matrices that back-select the value of an output co-variable of a first memory matrix preceding a second memory matrix, in which the back-selected value of the output co-variable belongs to the value of the output variable of the first matrix that is most likely to forward select the actual value of the output variable of the second matrix. Thus, these bidirectional memory matrices can be used in networks of matrix units. PA1 (e) These discrete conditional memory cells also can be arranged in matrices similar to conventional discrete memories, allowing these self-learning memory circuits to be readily implemented using the large scale integration (LSI) techniques commonly used with conventional and associative memories. Thus, the self-learning memory matrices shown herein act like neural networks, while retaining the basic simplicity of absolute associative memories.